
#include "commion.hpp"
Init it();


int main()
{
    //服务端用于创建共享内存，并打开，读取共享内存中数据并打印出。
    
    // 1.创建共享空间
    key_t k = ftok(KEY_ADDR, KEY_PRJ_ID);
    if (k == -1)
    {
        perror("fotk fail");
        exit(-1);
    }
    int shmid = shmget(k, SHM_SIZE, IPC_CREAT | 0666);
    if (shmid == -1)
    {
        perror("shmget fail");
        exit(-1);
    }
    Log("共享空间创建成功", Test);
    
    // 2. 映射虚拟空间，并挂起
    char* shmaddr = (char*)shmat(shmid, nullptr, SHM_RDONLY);
    int fd = FifoOpen(FIFO_NAME,READ);    
    // 3. 操作
    while (1)
    {
        wait(fd);
        cout << shmaddr << endl;
        if (strcmp(shmaddr, "quit") == 0)
        break;
        sleep(1);
    }
    
    
    // 4. 去关联
    shmdt(shmaddr);
    Log("删除关联", debug) << endl;

    // 5. 删除共享空间
    shmctl(shmid, IPC_RMID,nullptr);
    Log("删除共享空间", debug) << endl;
    return 0;
}






